Docker 命令行管理 lazydocker

1 背景知识

lazydocker是基于终端的 Dockerdocker-compose 可视化查询工具,它可以在一个终端窗口中拥有所需的所有信息,并且每个 Docker 常用命令都可以绑定快捷键,同时可以添加自定义命令,还支持敲击键盘或单击鼠标,其他百度...

1.1 项目地址

https://github.com/jesseduffield/lazydocker

2 安装与部署

2.1 二进制安装

  1. 下载并解压。
wget https://github.com/jesseduffield/lazydocker/releases/download/v0.12/lazydocker_0.12_Linux_x86_64.tar.gz
tar -xzvf lazydocker_0.12_Linux_x86_64.tar.gz
  1. 移动到执行目录。
chmod +x lazydocker
mv lazydocker /usr/<span>local</span>/bin/

2.2 命令一键安装

2.3 简化命令

为了方便,可以设置一个别称 lzd

echo "alias lzd='lazydocker'" >> ~/.bash_profile

此时,直接执行 lzd 即可在终端上显示容器的各种指标状态图,可以使用鼠标直接点击,可查看日志,状态,配置文件等等

ESC键 或者 q 可以退出界面,x 可以弹出命令菜单进行更多的操作

3 快捷键

lazydocker 的交互式界面中,还提供了多种快捷键,可以通过快捷键快速的在多种功能之间切换

3.1 通用快捷键

通用快捷键 注释
[ 上一个选项
] 下一个选项
m 显示日志
b 显示二级菜单
回车 focus main panel

3.2 Project 界面

快捷键 注释
e 编辑配置文件
o 打开配置文件

3.3 Containers 界面

快捷键 注释
d 移除容器
e 显示/隐藏已停止的容器
s 停止容器
r 重启容器
a 使用 attach 命令进入容器
c 使用 exec 命令进入容器

3.4 Services 界面

快捷键 注释
d 移除容器
s 停止服务
r 重启服务
a 使用 attach 命令进入容器
R view restart options
c 运行预定义的自定义命令

3.5 Images 界面

快捷键 注释
c 运行预定义的自定义命令
d 移除镜像

3.6 Volumes 界面

快捷键 注释
c 运行预定义的自定义命令
d 删除数据卷

4 定制化配置

支持个性化定制,通过 config.yml 配置文件定义快捷键、定义配色、自定义显示 Git 命令内容等

vim ~/.config/lazydocker/config.yml

你也可以在打开 lazydocker 之后,鼠标移到左上方,使用快捷键 o 即可打开配置文件进入编辑状态,此时直接编辑即可。

本人使用的配置如下:

gui:
  scrollHeight: 2
  theme:
    activeBorderColor:
    - green
    - bold
    inactiveBorderColor:
    - white
    optionsTextColor:
    - blue
  returnImmediately: false
  wrapMainPanel: false
reporting: undetermined
commandTemplates:
  dockerCompose: docker-compose
  restartService: '{{ .DockerCompose }} restart {{ .Service.Name }}'
  stopService: '{{ .DockerCompose }} stop {{ .Service.Name }}'
  serviceLogs: '{{ .DockerCompose }} logs --since=60m --follow {{ .Service.Name }}'
  viewServiceLogs: '{{ .DockerCompose }} logs --follow {{ .Service.Name }}'
  rebuildService: '{{ .DockerCompose }} up -d --build {{ .Service.Name }}'
  recreateService: '{{ .DockerCompose }} up -d --force-recreate {{ .Service.Name }}'
  viewContainerLogs: docker logs --timestamps --follow --since=60m {{ .Container.ID
    }}
  containerLogs: docker logs --timestamps --follow --since=60m {{ .Container.ID }}
  allLogs: '{{ .DockerCompose }} logs --tail=300 --follow'
  viewAlLogs: '{{ .DockerCompose }} logs'
  dockerComposeConfig: '{{ .DockerCompose }} config'
  checkDockerComposeConfig: '{{ .DockerCompose }} config --quiet'
  serviceTop: '{{ .DockerCompose }} top {{ .Service.Name }}'
customCommands:
  containers:
  - name: bash
    attach: true
    command: docker exec -it {{ .Container.ID }} /bin/sh
    serviceNames: []
oS:
  openCommand: open {{filename}}
  openLinkCommand: open {{link}}
update:
  dockerRefreshInterval: 100ms
stats:
  graphs:
  - caption: CPU (%)
    statPath: DerivedStats.CPUPercentage
    color: blue
  - caption: Memory (%)
    statPath: DerivedStats.MemoryPercentage
    color: green

5 参考链接

jesseduffield/lazydocker: The lazier way to manage everything docker